package io.github.hadyang.leetcode.random;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;

/**
 * 给出第一个词 first 和第二个词 second，考虑在某些文本 text 中可能以 "first second third"
 * 形式出现的情况，其中 second 紧随 first 出现，third 紧随 second 出现。
 *
 * <p>对于每种这样的情况，将第三个词 "third" 添加到答案中，并返回答案。
 *
 * <p>
 *
 * <p>示例 1：
 *
 * <p>输入：text = "alice is a good girl she is a good student", first = "a", second = "good"
 * 输出：["girl","student"] 示例 2：
 *
 * <p>输入：text = "we will we will rock you", first = "we", second = "will" 输出：["we","rock"]
 *
 * <p>提示：
 *
 * <p>1 <= text.length <= 1000 text 由一些用空格分隔的单词组成，每个单词都由小写英文字母组成 1 <= first.length, second.length <=
 * 10 first 和 second 由小写英文字母组成
 *
 * <p>来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/occurrences-after-bigram
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @author haoyang.shi
 * @date 2019-11-05
 */
public class Q1078 {

  public String[] findOcurrences(String text, String first, String second) {
    List<String> res = new ArrayList<>();
    String[] split = text.split(" ");
    for (int i = 0; i < split.length; i++) {
      if (split[i].equals(first)) {
        if (i + 1 < split.length && split[i + 1].equals(second)) {
          if (i + 2 < split.length) {
            res.add(split[i + 2]);
          }
        }
      }
    }

    String[] strings = new String[res.size()];
    return res.toArray(strings);
  }

  @Test
  public void test() {
    System.out.println(
        Arrays.toString(findOcurrences("alice is a good girl she is a good student", "a", "good")));

    System.out.println(
        Arrays.toString(findOcurrences("we will we will rock you", "we", "will")));
  }
}
